// 检查改名后的视频文件是否可用

import ffmpeg from 'fluent-ffmpeg';
import ffprobe from 'ffprobe-static';
import { readList } from '../common.js';
import fs from 'node:fs';

ffmpeg.setFfprobePath(ffprobe.path);

const checkVideoFile = filePath => {
    return new Promise((resolve, reject) => {
        ffmpeg.ffprobe(filePath, (err, metadata) => {
            //  console.log(err)
            if (err) {
                console.log('错误');
                // 如果有错误，说明视频文件可能损坏
                resolve(false);
            } else {
                // 没有错误，说明视频文件正常
                resolve(true);
            }
        });
    });
};

process.on('message', fileListPath => {
    const videoFiles = readList(fileListPath);
    let vi = 0;
    const v = [];
    videoFiles.forEach(async (item, index) => {
        const isValid = await checkVideoFile(item);
        if (!isValid) {
            console.log(`${item}-->视频文件可能损坏`);
            v.push(item);
        }
        vi++;
        // console.log('正在检查==>', index);
        if (index >= videoFiles.length - 1) {
            // 检查完成
            process.send(JSON.stringify(v));
            fs.unlinkSync(fileListPath);
        }
    });
});
